--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit 510d476c0dfd7f72dd81715f4d323eb95ea0c752
Parents : f07a035
Author : Jeremy O'Brien <956a74d715fe9cb2e9da0a19b067b414>
Signature : T66BB85Valid, signed by author
Date : 2026-07-12T10:16:29-04:00
RRC: configurable max accepted resource transfer size
Changes
2 files changed, 21 insertions(+), 1 deletions(-)
Diff
diff --git a/nomadnet/NomadNetworkApp.py b/nomadnet/NomadNetworkApp.py
index 522a77c..50b4c6d 100644
--- a/nomadnet/NomadNetworkApp.py
+++ b/nomadnet/NomadNetworkApp.py
@@ -155,6 +155,7 @@ class NomadNetworkApp:
self.rrc_history_per_room_cap = 500
self.rrc_filter_loaded_history = True
+ self.rrc_max_accepted_resource_size = 256*1024
self.rrc_ephemeral_notices = 600
self.rrc_nick_colors = True
self.rrc_nick_colors_theme = None
@@ -994,6 +995,12 @@ class NomadNetworkApp:
except Exception: value = True
self.rrc_filter_loaded_history = value
+ if option == "max_accepted_resource_size":
+ try: value = self.config["rrc"].as_int(option)
+ except Exception: value = None
+ if value is not None and value >= 0:
+ self.rrc_max_accepted_resource_size = value*1024
+
if option == "ephemeral_notices":
try: value = self.config["rrc"].as_float(option)
except Exception: value = 0
@@ -1397,6 +1404,14 @@ history_per_room_cap = 500
# loaded.
filter_loaded_history = yes
+# Maximum size in kilobytes of a resource
+# transfer that will be accepted from a
+# hub. Lower this on low-bandwidth links
+# to automatically reject transfers that
+# would take too long to receive. Set to
+# 0 to reject all resource transfers.
+max_accepted_resource_size = 256
+
# You can choose whether notices and sys
# messages persist indefinitely, or are
# removed from the message history after
diff --git a/nomadnet/RRC.py b/nomadnet/RRC.py
index 70afa79..e764b3b 100644
--- a/nomadnet/RRC.py
+++ b/nomadnet/RRC.py
@@ -1213,7 +1213,12 @@ class RRCHub:
size = getattr(resource, "size", 0)
except Exception:
return False
- if size > 262144:
+ try:
+ max_size = int(getattr(self.manager.app, "rrc_max_accepted_resource_size", 262144))
+ except Exception:
+ max_size = 262144
+ if max_size <= 0 or size > max_size:
+ self._log("rejecting resource transfer of "+str(size)+" bytes (max accepted is "+str(max_size)+" bytes)", RNS.LOG_DEBUG)
return False
return True
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────